home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1998 June / SGI Freeware 1998 June.iso / dist / fw_IZzip.idb / usr / freeware / src / zip / os2 / makefile.os2.z / makefile.os2
Makefile  |  1997-09-09  |  8KB  |  286 lines

  1. # Makefile for Zip, ZipCloak, ZipNote and ZipSplit
  2.  
  3. # Supported Make utilities:
  4. # - Microsoft/IBM nmake
  5. # - dmake 3.8 (parallel make, use -P4 if you have the memory)
  6. # - GNU make, at least version 3.68
  7. # - NOT watcom make (brain dead, apparently doesn't know lines cont'd with \)
  8.  
  9. # Supported 16-bit C Compilers (created programs run under OS/2 1.x and 2.x):
  10. # - Microsoft C 6.00
  11.  
  12. # Supported 32-bit C Compilers (created programs run under OS/2 2.x only):
  13. # - GNU gcc (emx kit 0.8g or newer)
  14. # - IBM C Set/2 or C Set++   - does not yet work with ASM code
  15. # - Watcom C/C++/386         - does not yet work with ASM code
  16. # - Borland C++              - no ASM code yet
  17.  
  18. # Supported Assemblers:
  19. # - Microsoft MASM 6.00 with Microsoft C, IBM C, Watcom C
  20. # - Microsoft MASM 5.xx with Microsoft C, uncomment "masm" line near line 240
  21. # - GNU as with GNU gcc
  22.  
  23. # To use, enter "make/nmake/dmake -f makefile.os2" 
  24. # (this makefile depends on its name being "makefile.os2").
  25.  
  26. # Add -DNO_ASM to CFLAGS and remove match.obj if you do not have masm or ml.
  27. # Add -DDYN_ALLOC to ASFLAGS if you have defined it in tailor.h or CFLAGS
  28.  
  29. # Notes on 16-bit (Microsoft C 6.00) compilation:
  30.  
  31. #   The resulting programs can be used under OS/2 protected mode only.
  32. #   A larger stack has to be used for OS/2 because system calls
  33. #   use more stack than under DOS, 8k is recommended by Microsoft.
  34. #   Note that __STDC__ has to be defined explicitly with C 6.00 when -Ze
  35. #   is given, because Microsoft disables __STDC__ when their extensions
  36. #   are enabled. This is different from the C 5.10 behaviour.
  37.  
  38. # Notes on 32-bit (IBM C/C++, Watcom C, Borland C++ or GNU gcc) compilation:
  39.  
  40. #   The resulting programs can be used under OS/2 protected
  41. #   mode of OS/2 2.x only, not under 1.x and not under DOS.
  42. #   It makes no difference if __STDC__ is defined or not.
  43. #   Watcom C/C++, IBM C/C++ Set and Borland C++ work with DYN_ALLOC only.
  44.  
  45. # Special Notes on IBM C/C++ compilation:
  46.  
  47. #   The older C compiler (C Set/2) breaks, while optimizing, on deflate.c
  48. #   and trees.c (generates incorrect code). The newer C++ compiler (C Set++)
  49. #   doesn't but instead breaks on crypt.c. See the NFLAGS macro definition
  50. #   and change it's use as needed when you experience problems.
  51.  
  52. default:
  53.     @echo "Enter $(MAKE) -f makefile.os2 target"
  54.     @echo "where target is one of:"
  55.     @echo "   msc mscdos ibm ibmdyn ibmdebug ibmprof"
  56.     @echo "   watcom gcc gccdyn gccdebug borland"
  57.  
  58. # crosscompilation for MS-DOS with MS C 6.00
  59. mscdos:
  60.     $(MAKE) -f makefile.os2 zips \
  61.     CC="cl -nologo -AL -Oaict -Gs $(FP)" \
  62.     CFLAGS="-W3 -Zep" \
  63.     AS="ml -nologo -Zm -Cp" \
  64.     ASFLAGS="-D__LARGE__" \
  65.     LDFLAGS="-F 2000 -Lr -Fe" \
  66.         LDFLAGS2="-link /noe /exe" \
  67.         OUT="-Fo" \
  68.         OBJ=".obj" \
  69.     OBJA=match.obj
  70.  
  71. # MS C 6.00 for OS/2, 16-bit
  72. msc:
  73.     $(MAKE) -f makefile.os2 zips \
  74.     CC="cl -nologo -AL -Ocegit -Gs $(FP)" \
  75.     CFLAGS="-W1 -Zep -J -G2 -D__STDC__ -DOS2" \
  76.     AS="ml -nologo -Zm -Cp" \
  77.     ASFLAGS="-D__LARGE__" \
  78.     LDFLAGS="-F 2000 -Lp -Fe" \
  79.         LDFLAGS2="-link /noe /pm:vio" \
  80.         OUT="-Fo" \
  81.         OBJ=".obj" \
  82.     OBJA="match.obj" \
  83.         DEF="zip16.def"
  84.  
  85. # IBM C Set/2, statically linked runtime
  86. ibm:
  87.     $(MAKE) -f makefile.os2 zips \
  88.     CC="icc -Q -O -Gs" \
  89.     CFLAGS="-Sm -Sp1 -DOS2 -DDYN_ALLOC -DNO_ASM" \
  90.     NFLAGS="-O-" \
  91.     AS="ml -nologo" \
  92.     ASFLAGS="-Zm -Cp" \
  93.     LDFLAGS="-Fe" \
  94.         LDFLAGS2="" \
  95.         OUT="-Fo" \
  96.         OBJ=".obj" \
  97.     OBJA="" \
  98.         DEF="zip.def"
  99.  
  100. # IBM C Set/2, dynamically linked runtime
  101. ibmdyn:
  102.     $(MAKE) -f makefile.os2 zips \
  103.     CC="icc -Q -O -Gd -Gs" \
  104.     CFLAGS="-Sm -Sp1 -DOS2 -DDYN_ALLOC -DNO_ASM" \
  105.     NFLAGS="-O-" \
  106.     AS="ml -nologo" \
  107.     ASFLAGS="-Zm -Cp" \
  108.     LDFLAGS="-Fe" \
  109.         LDFLAGS2="" \
  110.         OUT="-Fo" \
  111.         OBJ=".obj" \
  112.     OBJA="" \
  113.         DEF="zip.def"
  114.  
  115. # IBM C Set/2, debug version
  116. ibmdebug:
  117.     $(MAKE) -f makefile.os2 zips \
  118.     CC="icc -Q -Ti" \
  119.     CFLAGS="-Sm -Sp1 -DOS2 -D__DEBUG_ALLOC__ -DDYN_ALLOC -DNO_ASM" \
  120.     AS="ml -nologo" \
  121.     ASFLAGS="-Zm -Cp" \
  122.     LDFLAGS="-Fe" \
  123.         LDFLAGS2="" \
  124.         OUT="-Fo" \
  125.         OBJ=".obj" \
  126.     OBJA="" \
  127.         DEF="zip.def"
  128.  
  129. # IBM C Set/2, profiling version for PROFIT
  130. ibmprof:
  131.     $(MAKE) -f makefile.os2 zips \
  132.     CC="icc -Q -O -Gs -Gh -Ti" \
  133.     CFLAGS="-Sm -Sp1 -DOS2 -DDYN_ALLOC -DNO_ASM" \
  134.     NFLAGS="-O-" \
  135.     AS="ml -nologo" \
  136.     ASFLAGS="-Zm -Cp" \
  137.     LDFLAGS="-Fe" \
  138.         LDFLAGS2="profit.obj" \
  139.         OUT="-Fo" \
  140.         OBJ=".obj" \
  141.     OBJA="" \
  142.         DEF="zip.def"
  143.  
  144. # Watcom C/386 9.0
  145. watcom:
  146.     $(MAKE) -f makefile.os2 zips \
  147.     CC="wcl386 -zq -Ox -s" \
  148.     CFLAGS="-Zp1 -DOS2 -DDYN_ALLOC -DNO_ASM" \
  149.     AS="ml -nologo" \
  150.     ASFLAGS="-Zm -Cp" \
  151.     LDFLAGS="-k0x40000 -x -Fe=" \
  152.         LDFLAGS2="" \
  153.         OUT="-Fo" \
  154.         OBJ=".obj" \
  155.     OBJA=""
  156.  
  157. # Borland C++ (TOPAZ)
  158. borland:
  159.     $(MAKE) -f makefile.os2 zips \
  160.     CC="bcc -O" \
  161.     CFLAGS="-w- -DOS2 -DDYN_ALLOC -DNO_ASM" \
  162.     AS="ml -nologo" \
  163.     ASFLAGS="-Zm -Cp" \
  164.     LDFLAGS="-e" \
  165.         LDFLAGS2="" \
  166.         OUT="-o" \
  167.         OBJ=".obj" \
  168.     OBJA="" \
  169.         DEF="-sDzip.def"
  170.  
  171. # emx 0.8f, gcc, OMF format, statically linked C runtime and emx
  172. gcc:
  173.     $(MAKE) -f makefile.os2 zips \
  174.     CC="gcc -Zomf -Zsys -O" \
  175.     CFLAGS="-DOS2" \
  176.     AS="gcc -Zomf" \
  177.     ASFLAGS="" \
  178.     LDFLAGS="-o ./" \
  179.         LDFLAGS2="-s -los2" \
  180.         OUT="-o" \
  181.         OBJ=".obj" \
  182.     OBJA="matchgcc.obj" \
  183.         DEF="zip.def"
  184.  
  185. # emx 0.8g, gcc, OMF format, dynamically linked C runtime and emx
  186. gccdyn:
  187.     $(MAKE) -f makefile.os2 zips \
  188.     CC="gcc -Zomf -Zmtd -O" \
  189.     CFLAGS="-DOS2" \
  190.     AS="gcc -Zomf" \
  191.     ASFLAGS="" \
  192.     LDFLAGS="-o ./" \
  193.         LDFLAGS2="-s -los2" \
  194.         OUT="-o" \
  195.         OBJ=".obj" \
  196.     OBJA="matchgcc.obj" \
  197.         DEF="zip.def"
  198.  
  199. # emx, gcc, a.out format, with debug info for gdb
  200. gccdebug:
  201.     $(MAKE) -f makefile.os2 zips \
  202.     CC="gcc -g" \
  203.     CFLAGS="-DOS2" \
  204.     AS="gcc" \
  205.     ASFLAGS="" \
  206.     LDFLAGS="-o ./" \
  207.         LDFLAGS2="-los2" \
  208.         OUT="-o" \
  209.         OBJ=".o" \
  210.     OBJA="matchgcc.o" \
  211.         DEF="zip.def"
  212.  
  213. OBJZ =  zip$(OBJ) zipfile$(OBJ) zipup$(OBJ) fileio$(OBJ) util$(OBJ) \
  214.         globals$(OBJ) deflate$(OBJ) trees$(OBJ) bits$(OBJ) crypt$(OBJ) \
  215.     os2zip$(OBJ)
  216.  
  217. OBJU =  zipfile_$(OBJ) zipup_$(OBJ) fileio_$(OBJ) util_$(OBJ) \
  218.     globals$(OBJ) os2zip_$(OBJ)
  219.  
  220. OBJN =  zipnote$(OBJ) $(OBJU)
  221. OBJC =  zipcloak$(OBJ) crypt_$(OBJ) $(OBJU)
  222. OBJS =  zipsplit$(OBJ) $(OBJU)
  223.  
  224. .c$(OBJ):
  225.     $(CC) -c $(CFLAGS) $<
  226.  
  227. zips:    zip.exe zipnote.exe zipsplit.exe zipcloak.exe
  228.  
  229. zip$(OBJ):    zip.c zip.h ziperr.h tailor.h revision.h
  230. zipfile$(OBJ):    zipfile.c zip.h ziperr.h tailor.h
  231. zipup$(OBJ):    zipup.c zip.h ziperr.h tailor.h revision.h os2zip.h
  232. fileio$(OBJ):    fileio.c zip.h ziperr.h tailor.h os2zip.h
  233. util$(OBJ):    util.c zip.h ziperr.h tailor.h os2zip.h
  234. globals$(OBJ):    globals.c zip.h ziperr.h tailor.h
  235. deflate$(OBJ):    deflate.c zip.h ziperr.h tailor.h
  236. trees$(OBJ):    trees.c zip.h ziperr.h tailor.h
  237. bits$(OBJ):    bits.c zip.h ziperr.h tailor.h
  238. crypt$(OBJ):    crypt.c zip.h ziperr.h tailor.h
  239.     $(CC) -c $(CFLAGS) $(NFLAGS) $*.c
  240. os2zip$(OBJ):    os2zip.c os2zip.h
  241.  
  242. match$(OBJ):    match.asm
  243.     $(AS) -c $(ASFLAGS) $*.asm
  244. # use the following for MASM 5.x instead of 6.00
  245. #    masm -ml -t $(ASFLAGS) $*.asm;
  246.  
  247. match32$(OBJ):    match32.asm
  248.     $(AS) -c $(ASFLAGS) $*.asm
  249.  
  250. matchgcc$(OBJ):    match.s
  251.     $(AS) -c $(ASFLAGS) -x assembler-with-cpp -o $@ match.s
  252.  
  253. zipcloak$(OBJ):    zipcloak.c zip.h ziperr.h tailor.h revision.h
  254. zipnote$(OBJ):    zipnote.c zip.h ziperr.h tailor.h revision.h
  255. zipsplit$(OBJ): zipsplit.c zip.h ziperr.h tailor.h revision.h
  256.  
  257. zipfile_$(OBJ):    zipfile.c zip.h ziperr.h tailor.h
  258.     $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ zipfile.c
  259.  
  260. zipup_$(OBJ):    zipup.c zip.h ziperr.h tailor.h
  261.     $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ zipup.c
  262.  
  263. fileio_$(OBJ):    fileio.c zip.h ziperr.h tailor.h
  264.     $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ fileio.c
  265.  
  266. util_$(OBJ):    util.c zip.h ziperr.h tailor.h os2zip.h
  267.     $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ util.c
  268.  
  269. crypt_$(OBJ):    crypt.c zip.h ziperr.h tailor.h
  270.     $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ crypt.c
  271.  
  272. os2zip_$(OBJ): os2zip.c os2zip.h
  273.     $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ os2zip.c
  274.  
  275. zip.exe: $(OBJZ) $(OBJI) $(OBJA)
  276.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJZ) $(OBJI) $(OBJA) $(LDFLAGS2)
  277.  
  278. zipcloak.exe: $(OBJC)
  279.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJC) $(LDFLAGS2)
  280.  
  281. zipnote.exe: $(OBJN)
  282.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJN) $(LDFLAGS2)
  283.  
  284. zipsplit.exe: $(OBJS)
  285.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJS) $(LDFLAGS2)
  286.